package com.xyauto.adapter;


import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;

import androidx.viewpager.widget.PagerAdapter;

public class ViewPagerAdapter extends PagerAdapter {

    List<Fragment> fragmentList = new ArrayList<>();
    private List<View> mListVIew;

    public ViewPagerAdapter(List<View> mListVIew) {
        this.mListVIew = mListVIew;
    }

    @NonNull

    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        /*此方法是将给定位置的view添加到viewgroup（容器）中，创建并显示出来，返回一个代表新增页面的object（key）通常都是直接返回view
        本身既可以了，当然你也可以自定义自己的key，但是key和每个view要一一对应的关系
         */
        container.addView(mListVIew.get(position),0);
        return mListVIew.get(position);
    }

    @Override
    public int getCount() {
        return mListVIew.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull  View view, @NonNull  Object object) {
        /*此方法判断instantiateltem（ViewGroup ,int）函数所返回来的key与一个页面视图是否代表同一个视图
        （即它俩是否对应，对应的表示同一个View），通常我们直接写return view==object
        */
        return view==object;
    }

    @Override
    public void destroyItem(@NonNull  ViewGroup container, int position, @NonNull  Object object) {

        /*
        移除一个给定位置的页面；适配器有责任从容器中删除这个视图，这是为了确保在finishUpadate（viewGroup）返回时视图
        能够被删除。而另外两个方法则时设计到一个key的东东；
         super.destroyItem(container, position, object);
         */
        container.removeView(mListVIew.get(position));

    }
}
